(function($, h, c) {
    var a = $([]),
    e = $.resize = $.extend($.resize, {}),
    i,
    k = "setTimeout",
    j = "resize",
    d = j + "-special-event",
    b = "delay",
    f = "throttleWindow";
    e[b] = 250;
    e[f] = true;
    $.event.special[j] = {
    setup: function() {
    if (!e[f] && this[k]) {
    return false;
    }
    var l = $(this);
    a = a.add(l);
    $.data(this, d, {
    w: l.width(),
    h: l.height()
    });
    if (a.length === 1) {
    g();
    }
    },
    teardown: function() {
    if (!e[f] && this[k]) {
    return false;
    }
    var l = $(this);
    a = a.not(l);
    l.removeData(d);
    if (!a.length) {
    clearTimeout(i);
    }
    },
    add: function(l) {
    if (!e[f] && this[k]) {
    return false;
    }
    var n;
    function m(s, o, p) {
    var q = $(this),
    r = $.data(this, d);
    try{
    r.w = o !== c ? o: q.width();
    r.h = p !== c ? p: q.height();
    n.apply(this, arguments);
    }catch(e){}
    }
    if ($.isFunction(l)) {
    n = l;
    return m;
    } else {
    n = l.handler;
    l.handler = m;
    }
    }
    };
    function g() {
    i = h[k](function() {
    a.each(function() {
    var n = $(this),
    m = n.width(),
    l = n.height(),
    o = $.data(this, d);
    if (m !== o.w || l !== o.h) {
    n.trigger(j, [o.w = m, o.h = l]);
    }
    });
    g();
    },
    e[b]);
    }
    })(jQuery, this);